Method and apparatus for programming system function parameters in programmable code symbol readers

ABSTRACT

A novel system and method of programming the function parameters of programmable bar code symbol readers and scanners, while avoiding the need to couple the data communication port of a function parameter computer system and the programmable bar code symbol reader to be configured. In a first illustrative embodiment, the function-encoded parameters of a master bar code symbol reader are determined using a computer-based function-parameter device and subsequently buffered in memory buffer contained therein; the buffered function-encoded parameters are used to produce a list (i.e., ordered set) of function-encoded bar code symbols which are printed in a specified reading-sequence; and the list of printed function-encoded bar code symbols are read in specified reading sequence so as to configure (i.e., program) the bar code symbol reader with same set of function-encoded parameters that were programmed in the master bar code symbol reader.

The present application is a Continuation of patent application Ser. No.08/697,154, filed on Aug. 21, 1996 (now issued as U.S. Pat. No.5,777,315), which is a Continuation of patent application Ser. No.08/389,320, filed on Feb. 16, 1995. Patent application Ser. No.08/389,320 is a Continuation-in-Part of copending application Ser. No.08/292,237 entitled “Automatic Bar Code Symbol System and Method ofReading Bar Code Symbols Using the Same”, filed Aug. 17, 1994, and acontinuation-in-part of application Ser. No. 08/293,695, entitled“Automatic Laser Scanning System and Method of Recording Bar CodeSymbols Using Same”, filed on Aug. 19, 1994, (now issued as U.S. Pat.No. 5,468,951), which is a continuation of application Ser. No.07/898,919, filed on Jun. 12, 1992, now U.S. Pat. No. 5,340,973. Patentapplication Ser. No. 08/389,320 is also a continuation-in-part ofapplication Ser. No. 08/293,492 entitled “Automatic Code Reading SystemHaving Selectable Long-Range and Short-Range Modes of Operation” filedAug. 19, 1994, (now abandoned) which is a continuation of applicationSer. No. 07/761,123 filed Sep. 17, 1991, now U.S. Pat. No. 5,340,971.Each of these Applications is commonly owned by Metrologic Instruments,Inc. and is incorporated herein by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to a novel method and apparatusfor setting the various system function parameters of programmable codesymbol reading systems in a simple and convenient manner.

BRIEF DESCRIPTION OF THE PRIOR ART

Bar code symbol readers have gained increasing popularity in recentyears as they permit easy and reliable identification of goods forvarious business, scientific and educational purposes.

In general, most bar code symbol reading systems have various systemfunctionalities that can be performed in a user-selectable manner. In atypical automatic hand-supportable bar code symbol reader, such as theMetrologic™ MS951 laser bar code symbol reader, the classes of systemfunctions that are selectively available include: decode functions;supplemental functions; ITF symbol lengths; minimum symbol length;symbol length lock; communication mode selection; beeper operatingcharacteristics; scanner definition and test modes; same symboltime-out; scanner functionality features; UPC formatting options;Non-UPC formatting options; depth-of field selections; etc.

Typically, great effort is undertaken to determine which set of systemfunction parameters provides optimal performance in a given scanningenvironment (e.g., a particular point of sale (POS) station, inventorycontrol environment, and the like). There is great motivation forfinding and using such function parameters for any particular scanningapplication. The reason is clear: store managers need to use bar codesymbol scanners that are configured for optimal scanning performance ina given scanning environment. This ensures that within a given timeperiod, cashiers are able to safely scan the maximum number of goodsunder a particular set of working conditions. Typically, thedetermination of such system function parameters is carried out in betaor test sites, often under the supervision of application engineers andproductivity experts.

Once a “master” or model bar code symbol reader is configured (i.e.,programmed) to the satisfaction of productivity experts and applicationengineers, it is then desirable to duplicate (i.e., clone) the “master”bar code symbol reader a number of times. Oftentimes, the “cloned” barcode symbol readers are either situated of are to be used at remotelocations far away from the master bar code symbol reader. This would bethe case for a network of bar code symbol readers being used throughouta chain of retail department stores. By programming such bar code symbolreaders in the same way, the store managers have a high degree ofcertainty that each configured bar code symbol reader will functionsubstantially the same way, and thus ensure that a predictable level ofscanner performance in a given working environment.

In most state-of-the-art bar code symbol readers, such as theMetrologic™ MS951 laser bar code symbol reader, the system functions areprogrammable by way of the microprocessor used in the realization of thebar code symbol reader. This is achieved by assigning a unique functionparameter to each system function available in the bar code symbolreading system. In practice each available system function is assignedto a different memory structure in the programmable memory (NOVRAM)directly accessible by the microprocessor. Typically, one or severalbits of memory are required for each programmable parameter assigned toeach available system function. The collection of system parametersassigned to any particular bar code symbol reader is typically referredto as the “system configuration parameters” or “scanner configurationparameters” of the scanner or reader, as they specify the particularsystem function configuration into which the bar code symbol reader isprogrammed.

Presently, there are several known techniques for programming the systemfunction parameters of a programmable bar code symbol reader.

The first function programming technique, disclosed in U.S. Pat. No.4,825,058, involves programming each available system function into a“master” bar code symbol reader by reading a function-encoded bar codesymbol printed on either a bar code symbol programming menu, or a sheetin a bar code symbol programming booklet. Typically, an“enter-programming-mode” bar code symbol is first read, to prepare themicroprocessor for changing system functions in the bar code symbolreader. Thereafter, the function-encoded bar code symbol is read toeffect the preprogramming of a corresponding system function parameterin its non-volatile memory. This process is repeated for each functionto be programmed into the bar code symbol reader. To complete theprocess, an “exit-programming-mode” bar code symbol is read off the barcode symbol programming menu. When desiring to clone a master bar codesymbol reader, the steps of the above technique must be repeated foreach individual bar code symbol reader to be cloned. Consequently thisapproach is time-consuming and laborious to carry our in practice.

A second function programming technique, disclosed in U.S. Pat. No.4,868,375, involves connecting the communication port of the bar codesymbol reader to be reconfigured, to the communication port of a host orprogramming computer system, and then sending function-encoded commandsto the microprocessor in the connected bar code symbol reader. Eachfunction-encoded command is then used by the microprocessor in order toreconfigure the function parameters in the non-volatile memory of thebar code symbol reader. When desiring to clone the configured bar codesymbol reader using the above techniques, the above procedure isrepeated for each bar code symbol reader to be cloned therefrom. Insituations where bar code symbol readers of interest are located inphysically remote locations, this technique is difficult to practicewithout the use of expensive communications equipment.

In yet another technique, disclosed in U.S. Pat. No. 4,868,375, a numberof bar code symbol scanners are each connected to a host computer systemthrough a computer network. The system allows any configured (i.e.,master) bar code symbol reader to transmit its system functionparameters to any other bar code symbol scanner in the network in orderto clone any other bar code symbol reader in the network. This approachis not only expensive and complicated to implement, but it does notprovide a simple way to reconfigure a bar code symbol reader that isdisconnected from such a computer network, or has no data communicationchannel therebetween.

In summary, the use of computer-based systems to program bar code symbolreaders is not new and certainly, a number of approaches, as describedabove, have been proposed and used in practice in order to configure barcode symbol readers and scanners to diverse user requirements. However,prior art approaches have been less than desirable due to theshortcomings and drawbacks described above.

Thus, there is a great need in the bar code symbol reading art for animproved way and means of configuring the system function parameters ofprogrammable bar code symbol reading devices, while overcoming theshortcomings and drawbacks of prior art systems and methodologies.

OBJECTS AND SUMMARY OF THE INVENTION

Accordingly, it is a primary object of the present invention to providea novel system and method of configuring the function parameter ofprogrammable code symbol scanning system, while avoiding theshortcomings and drawbacks of prior art systems and methodologies.

Another object of the present invention is to provide such a system andmethod for use with any type of bar code symbol reading system,including laser-based system, flash-illumination based systems andCCD-based systems.

Another object of the present invention is to provide a novel system andmethod of programming the function parameters of programmable codesymbol scanners, while avoiding the need to couple with the datacommunication port of the programmable code symbol reader to beconfigured.

A further object of the present invention is to provide a novel systemand method of programming a bar code symbol reader, in which (i) thefunction-encoded parameters of a master bar code symbol reader are readusing a computer-based function-parameter reading device having a memorycontained therein for buffering real function parameters; (ii) thebuffered function-encoded parameters are used to produce a list (i.e.,ordered set) of function-encoded bar code symbols which are printed in aprespecified reading-sequence; and (iii) the list of printedfunction-encoded bar code symbols are read in the prespecified readingsequence in order so as to reconfigure (i.e., program) the bar codesymbol reader with the same set of function-encoded parameterspreprogrammed in the master bar code symbol reader.

A further object of the present invention is to provide such a systemand method of programming a bar code symbol reader, in which datarepresentative of the list of function-encoded bar code symbols is firsttransmitted from the function-parameter reading device to a remotelysituated computer-based system, at which the list of function-encodedbar code symbols is printed prior to reconfiguring a bar code symbolreader by reading the same.

A further object of the present invention is to provide a novel systemand method of programming a code symbol reader, in which (i) thefunction-encoded parameters of a master bar code symbol reader are readusing a computer-based function-parameter reading device andsubsequently buffered therein; (ii) the buffered function-encodedparameters are used to produce a list of symbol reading instructions forreading specific function-encoded symbols on particular pages of apreprinted bar code symbol programming guide; and (iii) the list ofsymbol reading instructions are used to read specified function-encodedbar code symbols printed on specified pages of the preprinted bar codesymbol programming guide so as to reconfigure (i.e., program) the barcode symbol reader with the same set of function-encoded parameterspreprogrammed in the master bar code symbol reader.

A further object of the present invention is to provide such a systemand method of programming a bar code symbol reader, in which datarepresentative of the list of symbol reading instructions is firsttransmitted from the buffer memory of the function parameter readingdevice to a remotely situated computer-based system, at which the listof symbol reading instructions is printed prior to reconfiguring a barcode symbol reader by reading the same.

These and other objects of the present invention will become apparenthereinafter and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the Objects of the PresentInvention, the Detailed Description of the Illustrated Embodimentsshould be read in conjunction with the accompanying Drawings, wherein:

FIG. 1 is a perspective view of an automatic programmablehand-supportable laser bar code symbol reading device which may be usedin conjunction with system and method of the present invention;

FIG. 2 is a cross-sectional elevated side view along the longitudinalextent of the automatic bar code symbol reading device of FIG. 1,showing various hardware and software components used in realizing thesame;

FIG. 2A is a cross-sectional plan view along the longitudinal extent ofthe automatic programmable bar code symbol reading device taken alongline 2A—2A of FIG. 2, also showing the various components used inrealizing the device;

FIG. 3A is an elevated side view of the programmable bar code readingdevice of the present invention, illustrating the spatial relationshipbetween the object detection and scan fields of the device, and theprogrammable long and short ranges of programmed object detection andbar code presence detection;

FIG. 3B is a plan view of the automatic programmable bar code readingdevice taken along line 3A—3A of FIG. 3A, also illustrating the spatialrelationship between the object detection and scan fields of the deviceand the programmable long and short ranges of object and bar codepresence detection;

FIG. 4 is block functional system diagram of the automatic programmablebar code symbol reading device of FIG. 1, illustrating the principalcomponents of the device integrated with the control system thereof;

FIG. 5 is a block functional diagram of a first embodiment of the objectdetection means of the automatic programmable bar code symbol readingdevice of the present invention;

FIG. 6 is a block functional diagram of a second embodiment of theobject detection means of the programmable bar code symbol readingdevice;

FIG. 7 is a schematic representation of the memory structure of thefunction-parameter storage memory in the programmable bar code symbolreading device of FIG. 1;

FIG. 8 is a block process diagram illustrating the major stepsundertaken when carrying out the method of programming (i.e.,configuring) a master set of system function parameters in aprogrammable bar code symbol reader according to a first illustrativeembodiment of the present invention;

FIG. 9 is a perspective view of the programmable bar code symbol readerof FIG. 1 operably connected to the function parameter acquisitionsystem of the present invention, showing the function parameter readingsystem reading (i.e., acquiring) the “master” set of function parametersstored in the programmable bar code symbol reader and converting suchfunction parameters directly into a printable list of function-encodedbar code symbols uniquely corresponding thereto, which when read insequential order by another programmable bar code symbol reader,automatically programs the programmable bar code symbol reader with themaster set of function parameters;

FIG. 10 is a schematic representation of an exemplary list offunction-encoded bar code symbols printed in sequential order inaccordance with the principles of the present invention;

FIG. 10A is a schematic representation of the format of eachfunction-encoded bar code symbol printed in the exemplary master list ofFIG. 10;

FIG. 11 is a schematic representation showing a programmable bar codesymbol reader reading (i.e., scanning and decoding) the master list offunction-encoded bar code symbols shown in FIG. 14;

FIG. 12 is a block process diagram illustrating the major stepsundertaken when carrying out the method of programming a master set ofsystem function parameters in a programmable bar code symbol readeraccording to a second illustrative embodiment of the present invention;

FIG. 13 is a perspective view of a programmable bar code symbol readerof FIG. 1 operably connected to the function parameter reading system ofthe present invention, showing the function reading computer systemreading (i.e., acquiring) the master set of function parameters storedin the programmable bar code symbol reader and converting such functionparameters into a function-parameter programming file transmittable to aremotely situated computer system for printing out a master list offunction-encoded bar code symbols uniquely corresponding thereto, andwhen read in sequential order by another programmable bar code symbolreader, automatically programs the bar code symbol reader with themaster set of function parameters;

FIG. 14 is a schematic representation of a master list of bar codesymbol reading instructions referencing specific function-encoded barcode symbols preprinted in the bar code symbol programming booklet ofFIG. 15, and when read in sequential order, automatically programs a barcode symbol reader with a particular master set of function parametersset in a master bar code symbol reader from which other bar code symbolscanners are to be configured; and

FIG. 15 is a schematic representation of a preprinted bar code symbolprogramming guide constructed in accordance with the principles of thepresent invention; and

FIGS. 16A through 16C, taken together, show a high level flow chart of asystem control program (i.e., Main System Control Routine) illustratingvarious courses of programmed system operation that the automatic barcode symbol reading device may undergo during bar code symbol readingoperations, as well as during function-parameter programming andacquisition operations; and

FIG. 17 is a state transition diagram showing the various statetransitions that the programmable bar code symbol reading device of thepresent invention may undergo while in its bar code symbol reading mode.

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS

In FIG. 1, the automatic programmable bar code symbol reading system ofthe present invention is illustrated. As shown, automatic bar codesymbol reading system 1 comprises an automatic hand-supportable bar codesymbol reading device 2 operably associated with hand-supportable datacollection device 3 of the present invention. Operable interconnectionof bar-code symbol reading device 2 and data collection device 3 isachieved by a flexible multi-wire connector cord 4 extending from barcode symbol device 2 and plugged directly into the serial data-inputcommunications port of the data collection device 3. Alternatively, suchan interface may be achieved using the wireless Radio-Frequency (RF)scanner interface disclosed in copending application Ser. No. 08/292,237filed Aug. 17, 1995, and incorporated herein by reference in itsentirety. A detailed description of the structure, functions andoperation of the data collection device 3 is found in U.S. Pat. No.5,340,971, issued to Metrologic Instruments, Inc. on Aug. 23, 1994, alsoincorporated herein by reference.

As shown in FIGS. 1 through 3A, automatic bar code symbol reading device2 comprises an ultra lightweight hand-supportable housing 5 having ahead portion 5A that continuously extends into a contoured handleportion 5B at an obtuse deflection angle which can be in the range of150 to about 170 degrees. In a preferred embodiment, deflection angle ais about 160 degrees. This ergonomic housing design is sculpted (i.e.,form-fitted,) to the hand, making scanning as easy and effortless as awave of the hand. At the same time, this feature eliminates risks ofmusculoskeletal disorders, such as carpal tunnel syndrome, which canresult from repeated biomechanical stress commonly associated withpointing prior art gun-shaped scanners at a bar code, squeezing thetrigger to activate the scanning beam, and then releasing the trigger.

As illustrated in FIGS. 1 through 3A, the head portion of housing 5 hasa transmission aperture 6 formed in upper portion of front panel 7, topermit desired optical radiation to exit and enter the housing, as willbe described in detail hereinafter. The lower portion of front panel 7Bis optically opaque, as are all other surfaces of the hand-supportablehousing.

As illustrated in FIGS. 1, 3 and 3A in particular, automatic bar codereading device 2 generates two different fields external to thehand-supportable housing, in order to carry out automatic bar codesymbol reading according to the principles of the present invention.Specifically, an object detection field, indicated by broken and dottedlines, is provided externally to the housing for detecting energyreflected off an object bearing a bar code, located within the objectdetection field. A scan field, on the other hand, having at least onescanning plane of essentially planar extent, is provided external to thehousing for scanning an object present within the scan field. Suchscanning is achieved with a light beam so that scan data can becollected for detecting the presence of a bar code within the scanfield, and for subsequently reading (i.e., scanning and decoding) thedetected bar code symbol.

In general, the energy reflected of an object in the object detectionfield can be optical radiation or acoustical energy, either sensible ornon-sensible by the operator, and may be either generated by an externalambient source, or from the automatic bar code symbol reading deviceitself. In the illustrative embodiments, this energy is a beam ofinfrared light projected forwardly from transmission aperture 6 in aspatially directed fashion, preferably essentially parallel to thelongitudinal axis 8 of the head portion of the housing. In a preferredembodiment, the object detection field has a three-dimensionalvolumetric expanse spatially coincident with the transmitted infraredlight beam. This ensures that an object within the object detectionfield will be illuminated by the infrared light beam and that infraredlight reflected therefrom will be directed generally towards thetransmission aperture of the housing where it can be detected, toindicate that an object is within the object detection field.

In order to scan a bar code symbol on the object within the objectdetection field, a light beam is automatically generated within the headportion of the housing and repeatedly scanned through the transmissionaperture across the scan field. As illustrated in FIG. 1, at least aportion of the scanned light beam aligned with bar code on the detectedobject, will be reflected off the bar code and directed back towards andthrough the transmission aperture for collection, detection andsubsequent processing in a manner which will be described in detailhereinafter. To ensure that the bar code symbol on the detected objectis easily scanned by the scanning light beam, the object detection fieldis designed to spatially encompass at least a portion of the scan fieldalong the operative scanning range of the device, as illustrated inFIGS. 3 and 3A.

To more fully appreciate the mechanisms employed in providing the objectdetection and scan fields of bar code symbol reading device 2, referenceis best made to the operative elements within the hand-supportablehousing.

As shown in FIG. 4, bar code symbol reading device of the firstillustrated embodiment comprises a number of system components, namely,an object detection circuit 9, scanning means 10, photoreceiving circuit11, analog-to-digital (A/D) conversion circuit 12, bar code presencedetection module 13, bar code scan range detection module 14, symboldecoding module 15, data format conversion module 16, symbol characterdata storage unit 17, function parameter storage memory (i.e., EPROM)18, and serial data transceiver circuit 19. In addition, a magneticfield sensing circuit 20 is provided for detecting housing supportstand, while a manual switch 21 is provided for selecting long or shortrange modes of object and bar code presence detection. As illustrated,these components are operably associated with a programmable systemcontroller 22 which provides a great degree of versatility in systemcontrol, capability and operation. The structure, function andadvantages of this controller will be described in detail hereinafter.

In the illustrated embodiment, system controller 22, bar code presencedetection module 14, bar code scan range detection module 15, symboldecoding module 16, and data format conversion module 17 are realizedusing a single programmable device, such as a microprocessor havingaccessible program and buffer memory, and external timing means. It isunderstood, however, that any of these elements can be realized usingseparate discrete components as will be apparent to those skilled in theart.

In the illustrative embodiment, automatic bar code symbol reading device2 also includes power receiving lines 23 which lead to conventionalpower distribution circuitry (not shown) for providing requisite powerto each of the system components, when and for time prescribed by thesystem controller. As illustrated, power receiving lines 23 are providedwithin the encasing of flexible connector cord 4, run alongside datacommunication lines 24 of the device, and are thus physically associatedwith a multi-pin connector plug 25 at the end of the flexible connectorcord. An on/off power switch or functionally Ad equivalent device may beprovided external the hand-supportable housing to permit the user toenergize and de-energize the device. In the illustrative embodiment,power delivered through the connector cord to the bar code symbolreading device is continuously provided to system controller 22 andobject detection circuit 10 to continuously enable their operation,while only biasing voltages and the like are provided to all othersystem components. In this way, each remaining system component isinitially deactivated (i.e., disabled) from operation and must beactivated (i.e., enabled) by the system controller. In the embodimentdisclosed in copending application Ser. No. 08/292,237, flexibleconnector cord 4 can be eliminated replaced by RF signal transmissioncircuitry and a miniature internally disposed power supply as describedtherein.

The purpose of the object detection circuit is to determine (i.e.,detect) the presence of an object (e.g., product, document, etc.) withinthe object detection field of bar code symbol reading device 2, and inresponse thereto, automatically produce first control activation signalA₁. In turn, first control activation signal A₁ is provided as input tothe system controller which, as will be described in greater detailhereinafter, causes the device to undergo a transition to the bar codesymbol presence detection state. In FIGS. 5A and 5B, two differentapproaches to detecting the presence of an object within the objectdetection field are disclosed.

In FIG. 5, an “active” object detection circuit 10A is shown. Inessence, this circuit operates by transmitting an infrared (IR) lightsignal forwardly into the object detection field. First controlactivation signal A₁ is generated upon receiving a reflection of thetransmitted signal off an object within the object detection field. Asillustrated object detection circuit 10A is realized as an IR sensingcircuit which comprises a synchronous receiver/transmitter 27 and aninfrared LED 28 that generates a 940 nanometer pulsed signal at a rateof 2.0 KHZ. This pulsed IR signal is transmitted through focusing lens29 to illuminate the object detection field. When an object is presentwithin the object detection field, a reflected pulse signal is producedand focused through focusing lens 30 onto photodiode 31. Notably, thelight collecting (i.e., optical) characteristics of focusing lens 30 andaperture will essentially determine the geometric characteristics of theobject detection field. Consequently, the optical characteristics oflens 30 and aperture will be selected to provide an object detectionfield which spatially encompasses at least a portion of the scanningfield along the operative scanning range of the device. The output ofphotodiode 31 is converted to a voltage by current-to-voltage amplifier32, and the output thereof is provided as input to synchronousreceiver/transmitter 27 which to synchronously compares the receivedsignal with the transmitted signal and determines if an object ispresent in the object detection field. If so, then synchronousreceiver/transmitter 27 produces first control activation signal A₁=1,indicative of such condition. Upon generation of first controlactivation signal A₁=1, the system controller will activate theoperation of scanning means 11, photoreceiving circuit 12, A/Dconversion circuit 13 and bar code presence detection module 14according to a preprogrammed system control routine, the details ofwhich will be described hereinafter.

In FIG. 6, a passive object detection circuit 10B is shown. In essencethis circuit operates by passively detecting ambient light within theobject detection field. First control activation signal A₁ is generatedupon receiving light of different intensity reflected off an objectwithin the object detection field. As illustrated object detectioncircuit 10B is realized as a passive ambient light detection circuitwhich comprises a pair of photodiodes 35 and 36, that sense ambientlight gathered from two spatially overlapping parts of the objectdetection field using focusing lenses 37 and 38, respectively. Notably,the optical characteristics of focusing lenses 37 and 38 willessentially determine the geometric characteristics of the objectdetection field. Consequently, the optical characteristics of theselenses will be selected to provide an object detection field whichspatially encompasses at least a portion of the scanning field along theoperative scanning range of the device. The output signals ofphotodiodes 35 and 36 are converted to voltages by current-to-voltageamplifiers 39 and 40 respectively, and are provided as input to adifferential amplifier 41. The output of differential amplifier 41 isprovided as input to a sample and hold amplifier 42 in order to reject60 and 120 Hz noise. Output signal of amplifier 42 is provided as inputto a logarithmic amplifier 43 to compand signal swing. The output signalof logarithmic amplifier 43 is provided as input to a differentiator 44and then to a comparator 45. The output of comparator 45 provides firstcontrol activation signal A₁.

Alternatively, automatic bar code symbol reading device hereof can bereadily adapted to sense ultrasonic energy reflected off an objectpresent within the object detection field. In such an alternativeembodiment, object detection circuit 10 is realized as an ultrasonicenergy sensing mechanism. In housing 5, ultrasonic energy is generatedand transmitted forwardly of the housing head portion into the objectdetection field. Then, ultrasonic energy reflected off an object withinthe object detection field is detected closely adjacent the transmissionwindow using an ultrasonic energy detector. Preferably, a focusingelement is disposed in front of the detector in order to effectivelymaximize collection of reflected ultrasonic energy. In such instances,the focusing element will essentially determine the geometricalcharacteristics of the object detection field of the device.Consequently, as with the other above-described object detectioncircuits, the energy focusing (i.e., collecting) characteristics of thefocusing element will be selected to provide an object detection fieldwhich spatially encompasses at least a portion of the scan field.

For purposes of illustration, object detection circuit 10A shown in FIG.5, is provided with two different modes of operation, namely, a longrange mode of object detection and a short range mode of objectdetection. As shown in FIG. 4, these modes are set by the systemcontroller using mode enable signals E_(IRT)=0 and E_(IRT)1,respectively. When induced into the long range mode of operation, the IRsensing circuit (i.e., object detection means) will generate firstcontrol activation signal A₁=1 whenever an object within the objectdetection field has been detected, despite the particular distance theobject is located from the transmission aperture. When induced into theshort range mode operation, the IR sensing circuit will generate firstactivation control signal A₁=1 only when an object is detected at adistance within the short range of the object detection field. The longrange specification for object detection is preselected to be the fullor entire range of sensitivity provided by IR sensing circuit 10A (e.g.,0 to about 10 inches), which is schematically indicated in FIGS. 3 and3A. In the preferred embodiment, the short range specification forobject detection is preselected to be the reduced range of sensitivityprovided by the IR sensing circuit when mode enable signal E_(IRT)=1 isprovided to the desensitization port of receiver/transmitter 27 in FIG.5. In an illustrated embodiment, the short range of object detection isabout 0 to about 3 inches or so, as schematically indicated in FIGS. 3and 3A, to provide CCD-like scanner emulation. As will become apparenthereinafter, the inherently limited depth of field and width of fieldassociated with the short range mode of object detection prevents, inessence, the scanning means 11 from flooding the scan field with laserscanning light and inadvertently detecting undesired bar code symbols.The particular uses to which object detection range selection can beput, are described in great detail in U.S. Pat. No. 5,340,971.

As illustrated in FIG. 4, scanning means 11 comprises a light source 47which, in general, may be any source of intense light (e.g., laserlight) suitably selected for maximizing the reflectively from theobject's surface bearing the bar code symbol. In the illustrativeembodiment, light source 47 comprises a solid-state visible laser diode(VLD) which is driven by a conventional driver circuit 48. In theillustrative embodiment, the wavelength of visible laser light producedfrom laser diode 47 is about 670 nanometers. In order to scan the laserbeam output from laser diode 47 over a scan field having a predeterminedspatial extent in front of the head portion of the housing, a planarscanning mirror 49 can be oscillated back and forth by a stepper motor50 driven by a conventional driver circuit 51, as shown. However, one ofa variety of conventional scanning mechanisms may be alternatively usedwith excellent results.

To selectively activate laser light source 47 and scanning motor 50, thesystem controller provides laser diode enable signal E_(L) and scanningmotor enable signal E_(M) as input to driver circuits 48 and 51,respectively. When enable signal E_(L) is a logical “high” level (i.e.,E_(L)=1), a laser beam is generated, and when E_(M) is a logical highlevel the laser beam is scanned through the transmission aperture andacross the scan field.

When an object, such as product bearing a bar code symbol, is within thescan field at the time of scanning, the laser beam incident thereon willbe reflected. This will produce a laser light return signal of variableintensity which represents a spatial variation in light reflectivitycharacteristic of the spaced apart pattern of bars (and spaces)comprising the bar code symbol. Photoreceiving circuit 12 is providedfor the purpose of detecting at least a portion of laser light ofvariable intensity, which is reflected off the object and bar codesymbol within the scan field. Upon detection of this scan data signal,photoreceiving circuit 12 produces an analog scan data signal D₁indicative of the detected light intensity.

As shown in FIG. 2A, photoreceiving circuit 12 comprises scan datacollection mirror 53 which focuses received optical scan data signalsfor subsequent detection by a photoreceiver 54 having, mounted in frontof its sensor, a wavelength selective filter 150 which only transmitsoptical radiation of wavelengths up to a small band above 670nanometers. Photoreceiver 54, in turn, produces an analog signal whichis subsequently amplified by preamplifier 55 to produce analog scan datasignal D₁. In combination, scanning means 11 and photoreceiving circuit12 cooperate to generate scan data signals from the scan field, overtime intervals specified by the system controller. As will illustratedhereinafter, these scan data signals are used by bar code presencedetection module 14, bar code scan range detection module 15 and symboldecoding module 16.

As illustrated in FIG. 4, analog scan data signal D₁ is provided asinput to AID conversion circuit 13. As is well known in the art, A/Dconversion circuit 13 processes analog scan data signal D₁ to provide adigital scan data signal D₂ which resembles, in form, a pulse widthmodulated signal, where logical “1” signal levels represent spaces ofthe scanned bar code and logical “0” signal levels represent bars of thescanned bar code. A/D conversion circuit 13 can be realized by anyconventional A/D chip. Digitized scan data signal D₂ is provided asinput to bar code presence detection module 14, bar code scan rangedetection module 15 and symbol decoding module 16.

The purpose and function of bar code presence detection module 14 is todetermine whether a bar code is present in or absent from the scan fieldover time intervals specified by the system controller. When a bar codesymbol is detected in the scan field, the bar code presence detectionmodule 14 automatically generates second control activation signal A₂(i.e., A₂=1) which is provided as input to the system controller, asshown in FIG. 4. Preferably, bar code presence detection module 14 isrealized as a microcode program carried out by the microprocessor andassociated program and buffer memory, described hereinbefore. Thefunction of the bar code presence detection module is not to carry out adecoding process but rather to simply and rapidly determine whether thereceived scan data signals produced during bar code presence detection,represent a bar code symbol residing within the scan field. There aremany ways in which to achieve this through a programming implementation.

In the illustrative embodiment, the aim of bar code presence detectionmodule 14 is to simply detect a bar code symbol “envelope”. This isachieved by first processing a digital scan data signal D₂ so as toproduce digitized “count” data and digital “sign” data. The digitalcount data is representative of the measured time interval (i.e.duration) of each signal level between detected signal level transitionswhich occur in digitized scan data signal D₂. The digital sign data, onthe other hand, indicates whether the signal level between detectedsignal level transitions is either a logical “1”, representative of aspace, or a logical “0”, representative of a bar within a bar codesymbol. Using the digital count and sign data, the bar code presencedetection module then determines in a straightforward manner whether ornot the envelope of a bar code symbol is represented by the collectedscan data.

When a bar code symbol envelope is detected, the bar code symbolpresence detection module provides second control activation signal A₂=1to the system controller. As will be described in greater detailhereinafter, second control activation signal A₂=1 causes the device toundergo a transition from the bar code presence detection state to barcode symbol reading state.

Similar to the object detection circuit described above, the bar codepresence detection module is provided with two different modes ofoperation, namely, a long range mode of bar code presence detection anda short range mode of bar code presence detection. As shown in FIG. 4,these modes are set by the system controller using mode select enablesignals E_(IRT)=3 and E_(IRT)=1, respectively. When induced into thelong range mode of operation, the bar code presence detection modulewill generate second control activation signal A₂=1 whenever theenvelope of a bar code symbol has been detected, despite the particulardistance the bar code is from the transmission aperture. When inducedinto the short range mode of operation, the bar code presence detectionmodule will generate second control activation signal A₂=1 when theenvelope of a bar code symbol has been detected and only if theassociated count (i.e. timing) data indicates that the detected bar coderesides within the short range predetermined for bar code presencedetection. Notably, similar to long range specification in connectionwith object detection, long range specification for bar code presencedetection is preselected to be the entire operative scanning rangeavailable to the device. In an illustrated embodiment, this range can befrom about 0 to about 10 inches from the transmission aperture,depending on the optics employed in the scanning means. This range isschematically indicated in FIGS. 3 and 3A. In the preferred embodiment,short range specification for bar code presence detection is preselectedto be the same range selected for short range object detection (e.g.approximately 0 to about 3 inches from the transmission aperture), asindicated in FIGS. 3 and 3A. The inherently limited depth of field andwidth of field associated with the short range mode of bar code symboldetection prevents scanning means 11 and bar code symbol detectionmodule 14 from actuating the reading of undesired bar code symbols inthe scan field.

Unlike the bar code symbol presence detection module, the purpose andfunction of the bar code scan range detection module is not to detectthe presence of a bar code symbol in the scan field, but rather todetermine the range that a detected bar code symbol resides from thetransmission aperture of the bar code symbol reading device. This dataprocessing module operates upon digitized scan data signal D₂ collectedfrom a bar code symbol which has been previously detected by the barcode symbol presence detection module.

In the preferred embodiment, bar code scan range detection module 15analyzes digital count data produced by the bar code presence detectionmodule, and determines at what range (i.e. distance) a detected bar codesymbol resides from the transmission aperture. This determination thenpermits the scan range detection module to determine whether thedetected bar code symbol is located within the prespecified long orshort range of the scan field, as measured from the transmissionaperture. As will be explained hereinafter in greater detail, thisinformation is used by the bar code presence detection module (i.e.,when induced into its short range mode of operation), to determinewhether second control activation signal A₂=1 should be provided to thesystem controller. Upon the occurrence of this event, the bar codesymbol reading device is caused to undergo a transition from the barcode symbol presence detection state to the bar code symbol readingstate.

The function of symbol decoding module 16 is to process, scan line byscan line, the stream of digitized scan data D₂, in an attempt to decodea valid bar code symbol within a predetermined time period allowed bythe system controller. When the symbol decoding module successfullydecodes a bar code symbol within the predetermined time period, symbolcharacter data D₃ (typically in ASCII code format) is producedcorresponding to the decoded bar code symbol. Thereupon a third controlactivation signal A₃ is automatically produced by the symbol decodingmodule and is provided to the system controller in order to perform itssystem control functions.

As will be illustrated hereinafter with reference to FIGS. 8A-8C, thesystem controller generates and provides enable signals EFC, EDS and EDTto data format conversion module 17, data storage unit 18 and serialdata transceiver circuit 19, respectively, at particular stages of itscontrol program, As illustrated, symbol decoding module 16 providessymbol character data D₃ to data format module 17 to convert data D₃into two differently formatted types of symbol character data, namely D₄and D₅. Format-converted symbol character data D₄ is of the “packeddata” format, particularly adapted for efficient storage in data storageunit 18. Format-converted symbol character data D₅ is particularlyadapted for data transmission to data collection and storage device 3,or a host device such as, a computer or electronic cash register. Whensymbol character data D₄ is to be converted into the format of theuser's choice (based on a selected option mode), the system controllerwill generate and provide enable signal EDS to data storage unit 18, asshown in FIG. 4. Similarly, when format converted data D₅ is to betransmitted to a host device, the system controller will generate andprovide enable signal EDT to data transmission circuit 19. Thereupon,data transmission circuit 19 transmits format-converted symbol characterdata D₅ to data collection device 3, via the data transmission lines offlexible connector cable 4.

In order to select either the long or short range mode of object (and/orbar code symbol presence) detection, bar code symbol reading device 2 isprovided with both manual and automated mechanisms for effectuating suchselections.

On the one hand, a manual switch (e.g., step button) 21 is mounted ontothe top surface of the handle portion of the housing, so that long andshort range modes of object detection can be simply selected bydepressing this switch with ones thumb while handling the bar codereading device. The switch generates and provides mode activation signalA₄ to the system controller, which in turn generates the appropriatemode enable signal E_(IRT).

In the illustrative embodiment, housing support stand detection means20, realized as a magnetic field sensing circuit, is operably associatedwith the system controller to automatically generate mode activationsignal A₄, when the hand-supportable housing is not, for example, beingsupported within a housing support stand (not shown) which bears apermanent magnetic disposed in proximity with its housing supportsurfaces. Preferably, a visual indicator light is provided to thehousing to visually indicate the particular mode which has been manuallyor automatically selected.

In general, magnetic sensing circuit 20 comprises a magnetic fluxdetector 60, a preamplifier and a threshold detection circuit. Magneticflux detector 60 produces as output an electrical signal representativeof the intensity of detected magnetic flux density in its proximity.When housing 5 is placed in housing support stand embodying a permanentmagnet (not shown), magnetic flux detector 60 will be in position todetect flux emanating from the permanent magnet. The produced electricalsignal is amplified by the preamplifier whose output is compared to apredetermined threshold maintained in the threshold detector circuit. Ifthe intensity of the detected magnetic flux exceeds the threshold,long-range mode activation signal A₄=1 is provided to the systemcontroller.

As illustrated in FIG. 2, magnetic flux detector 60 is mounted to therearward underside surface of the handle portion of the housing. In thisillustrated embodiment, a ferrous bar 61 is interiorly mounted to theunderside surface of the housing handle portion as shown. Thisarrangement facilitates releasable magnetic attachment of thehand-supportable housing to the magnetic bar fixedly installed in ahousing support stand of the type described above. Preferably, a hole 62is drilled through ferrous bar 61 to permit installation of magneticflux detector 60 so that magnetic flux emanating from the magnetic barin the support stand is detectable when the housing is positioned withinthe housing support stand. This arrangement is clearly illustrated inU.S. Pat. No. 5,340,971, supra. In this configuration, magnetic fluxdetector 60 is in proximity with the magnetic bar and long range modeactivation signal A₄=1 is produced and provided to the systemcontroller. In response, the system controller enables long range objectdetection (i.e., E_(IRT)=0) when the hand-supportable housing is removedfrom this housing support stand, the magnetic flux from the magnetic baris no longer sufficient in strength to produce long range modeactivation signal A₄=1; instead, short range mode activation signal A₄=0is produced and provided to the system controller. In response, thesystem controller enables short range object detection (i.e.,E_(IRT)=1).

It is understood that there are a variety of ways in which to configurethe above described system components within the housing of theautomatic bar code symbol reading device, while successfully carryingout of functions of the present invention. In FIGS. 2 and 2A, onepreferred arrangement is illustrated.

In FIG. 2A, the optical arrangement of the system components is shown.Specifically, visible laser diode 47 is mounted in the rear corner ofcircuit board 64 installed within the head portion of the housing. Astationary concave mirror 53 is mounted centrally at the front end ofcircuit board 63, primarily for collecting laser light. Notably, theheight of concave mirror 53 is such as not to block light transmissionaperture 6. Mounted off center onto the surface of concave mirror 53 isvery small second mirror 64 for directing the laser beam to planarmirror 49 which is connected to the motor shaft of a scanning motor 50,for joint oscillatory movement therewith. As shown, scanning motor 50 ismounted centrally at the rear end of circuit board 63. In the oppositerear corner of circuit board 63, photodetector 54 is mounted.

In operation, laser diode 47 adjacent the rear of the head portion,produces and directs a laser beam in a forward direction to the smallstationary mirror 64 and is reflected back to oscillating mirror 49.Oscillating mirror 49 scans the laser beam over the scan field. Thereturning light beam, reflected from the bar code, is directed back tooscillating mirror 49, which also acts as a collecting mirror. Thisoscillating mirror then directs the beam to stationary concave mirror 53at the forward end of the housing head portion. The beam reflected fromthe concave mirror 53 is directed to photodetector 54 to produce anelectrical signal representative of the intensity of the reflectedlight.

In front of stationary concave mirror 53, IR LED 28 and photodiode 31are mounted to circuit board 63, in a slightly offset manner fromlongitudinal axis 9 of the head portion of the housing. Apertures 65 and66 are formed in opaque portion 7B of the housing below the transmissionaperture, to permit transmission and reception of IR type object sensingenergy, as hereinbefore described. In order to shield IR radiation fromimpinging on photodiode 31 via the housing, a metallic optical tube 67having an aperture 68 encases photodiode 31. By selecting the size ofaperture, the placement of photodiode 31 within optical tube 67 and/orthe radiation response characteristics of the photodiode, desiredgeometric characteristics for the object detection field can beachieved, as described hereinbefore. To prevent optical radiationslightly below 670 nanometers from entering the transmission aperture 6,a plastic filter lens 69 is installed over the transmission aperture fortransmitting only optical radiation from slightly below 670 nanometers.Notably, in this way the combination of filter lens 69 at thetransmission aperture and wavelength selective filter 150 beforephotoreceiver 54 cooperate to form a narrow band-pass optical filterhaving a center wavelength of about 670 nanometers. This arrangementprovides improved signal-to-noise ratio for detected scan data signalsD₁.

The automatic bar code symbol reading device described above hasnumerous programmable system functions that can be selected (i.e.,programmed) by simply entering its Function-Programming Mode, and thenreading specific function-encoded bar code symbols that correspond toparticular system functions that one wants programmably implemented. Thepurpose of function parameter storage memory 19 is to store parametricdata representative of particular functions that have been programmablyselected while the device was in the Function-Programming Mode. Infunction parameter storage memory 19, each function parameter isassigned a unique memory address 19A, and is grouped into a functionclass indicated in FIG. 7 by reference numeral 19B. In general, withineach function class, one or more function parameters may be selected.

In the illustrative embodiment, the function parameter storage memory 19stores function parameters for the following set of function classes:decode functions 19C; supplemental functions 19D; ITF symbol lengths19E; minimum symbol length 19F; symbol length lock 19G; communicationmode selection 19H; beeper operating characteristics 19I; scannerdefinition and test modes and same symbol time-out 19J; scannerfunctionality features 19K; UPC formatting options 19L; Non-UPCformatting options 19M; and long-range/short range selections 19N; etc.

In general, one or more function parameters in storage memory 19 are setduring the Function-Programming Mode of the bar code symbol reader ofthe illustrative embodiment. For a bar code symbol reader having thefunction classes described above, the bar code symbol reader hereof maybe programmed into any one of typically tens of thousands of differentpossible Function Configuration States. Among such possible FunctionConfiguration States, there is one Default Function Configuration State,in which each function parameter within each function class is set to aprespecified (i.e., default) parameter value. In the Default FunctionConfiguration State, the bar code symbol reader operates in apredetermined manner.

Any desired Function Configuration State, including the Default FunctionConfiguration State, can be programmably selected by first causing thebar code symbol reader to first enter its Function Programming Mode.Notably, this programming mode is entered whenever a user desires toprogram (i.e., select) functions in the bar code symbol reader foreither mastering or cloning a bar code symbol scanner/reader. In ascanner mastering environment, one or more function parameters in anysingle Function Class can then be individually set by reading one ormore corresponding function-encoded bar code symbols off a preprintedBar Code Symbol Programming Guide. Preferably, the preprinted Bar CodeSymbol Programming Guide is of the general type distributed byMetrologic Instruments, Inc. with each one of its programmable bar codesymbol scanners and readers.

Once a master bar code symbol reader has been configured, one or morecloned versions of the master bar code symbol reader can be producedusing the function parameter programming method of the presentinvention. In general, there will be various ways to carry out themethod of the present invention. Two embodiments of this method areschematically illustrated herein. The first method is illustrated inFIG. 8 and involves the use of the apparatus shown in FIGS. 9, 11 and11A. The second method is illustrated in FIG. 12 and involves the use ofthe apparatus shown in FIGS. 13, 14 and 15. Each of these illustrativeembodiments of the method hereof will be described below.

As indicated at Block A of FIG. 8, the first step in the method of FIG.8 involves connecting a local function-parameter reading (i.e.,acquisition) computer system 70 to “master” bar code symbol reader. Inthe illustrative embodiments, function parameter reading computer system70 is realized as a laptop computer system running either MS-DOS,Microsoft Windows, X-Windows, or Macintosh System 7.5 Operating Systemsoftware. Preferably, the computer system has a high-resolution localprinter 71 and printer drivers for printing bar code symbols in a mannerwell known in the art. In addition, the function-parameter readingcomputer system 70 has stored on its hard-drive memory, a FunctionParameter Configuration Program which is particularly designed tocooperate with the Main System Control Routine of each master bar codesymbol reader. The functions of the Function Configuration Program willbe described in great detail hereinafter with reference to FIGS. 8 and12.

Preferably, the master bar code symbol reader 2 is connected to thefunction-parameter reading computer system 70 by connecting the serialdata communication port of the master bar code symbol reader to theserial data communication port of the function-parameter readingcomputer system 70. Typically, a conventional serial data communicationcable 73 is used to achieve such a connection. As indicated at Block Bin FIG. 8, once these data communication ports are in serialcommunication with each other, the function parameter reading computersystem 70 reads the function parameters from the function parameterstorage memory 19 of the master bar code symbol reader 2, and buffersthese parameters within its memory.

At Block B in FIG. 8, the function-parameter reading computer system 70,running the Function Parameter Configuration Program, uses the bufferedfunction parameters to create an (ASCII-based) Function ParameterConfiguration File.

As indicated at Block C in FIG. 8, the function parameter readingcomputer system 70 then uses the buffered function parameters to createan (ASCII-based) Function Parameter Programming File and the activationcode for default parameter set mode. In essence, Function ParameterProgramming File comprises a list of ASCII codes whose first list entryis representative of Function Programming Mode Activation, and whoselast list entry is representative of Function Programming ModeDeactivation. The second list entry is an ASCII code which representsthe setting of all function parameters to the predetermined DefaultParameter Settings. The third to the second-to-last list entries areASCII codes representative of function parameters of the master bar codesymbol reader, arranged in a predetermined order between the first andlast list entries of this list-type file structure.

As indicated at Block D in FIG. 8, the function parameter readingcomputer system 70 then locally converts the Function ParameterProgramming File Structure into a Bar Code Symbol (BCS) Encoded FunctionParameter Programming File Structure. The BCS-Encoded Function ParameterProgramming File represents list of Function-Encoded Bar Code Symbolswhich, when read in sequence by a clone bar code symbol reader 2′,automatically programs the function parameters in clone bar code symbolreader 2′ to that of the master bar code symbol reader 2. In essence,during the file conversion process at Block D of FIG. 8, each ASCII codein the Function Parameter Programming File is assigned a unique bar codesymbol (e.g., typically representative of a unique number) and thedigital code associated with the assigned bar code symbol is placed inthe BCS-Encoded Function Parameter Programming File. This way, when theBCS-Encoded Function Parameter Programming File is provided to localprinter 71, its processor can decode such digital codes and properlyprint the bar code symbol assigned to each list entry in the FunctionParameter Programming File.

As indicated at Block E in FIG. 8, the local function parameter readingcomputer system 70 uses the BCS-Encoded Function Parameter ProgrammingFile to produce a bar code symbol list 75. As shown in FIG. 11, bar codesymbol list 75 is particularly encoded to programmably configure acompatible bar code symbol reader 2 with the same function parametersset in master bar code symbol reader 2. Then, at Block F, a compatible(i.e., like) bar code symbol reader 2′ is configured into the master barcode symbol reader 2, by reading, in sequential order, the list of barcode symbols 75 custom-printed by the local printer 71.

As shown in FIG. 11A, each bar code symbol printed in the third throughthe second-to-last position in the list 75 has three fields, namely:Memory Address Field 76; Function Parameter Value Field 77; andSet/Clear Field 78. The Memory Address Field 77 indicates the addresslocation in function parameters storage 19 where the function parameterdata is stored. The Function Parameter Valve Field 78 identifies thevalue of the function parameter to be set. The Set/Clear Field 79indicates the particular operation that is to be performed on theparameter stored in the addressed memory storage location. The binarybits in each of these fields are decoded by system controller 22 shownin FIG. 4.

When the first bar code symbol 80 in the printed list 75 is read byclone bar code symbol reader 2′ as shown in FIG. 11, it automaticallycauses (i.e., induces) bar code symbol reader 2′ being configured toenter its Function-Programming Mode of Operation. When the second barcode symbol (i.e., the “Recall Default Function Parameters” bar codesymbol) 81 in the printed list is read, it automatically causes all thefunction parameters to be set to their Default values, thus providing amemory reference. This memory reference is used when particular functionparameters are changed during whenever the third bar code symbol 82through the second-from-last bar code symbol 83 are read from theprinted list 75. Then when the third bar code symbol 82 is read, itscorresponding function parameter is set to the value indicated in itsFunction Parameter Value Field, as indicated in FIG. 11A. When last barcode symbol 84 is read off the printed list, the bar code symbol reader2′ being configured, automatically exits its Function-Programming Mode,and returns to the object detection state of its Symbol Reading Mode.When all of the steps in FIG. 8 are completed, the bar code symbolreader 2′, which has read the printed list of bar code symbols 75 insequential order, will be automatically programmed with the identicalconfiguration of function parameters set in the master bar code symbolreader 2′. As such, the clone bar code symbol scanner 2′ will have thesame configuration of functionalities as the master bar code symbolreader 2.

In FIG. 12, the method of the second illustrative embodiment presentinvention is shown carried out using the function reading computersystem 70 of FIG. 9, with several modifications. As shown in FIG. 13, aprinter 89, remotely located from “local” function parameter readingcomputer system 70, is operably associated with a remote computer system90. Local and remote computer systems 70 and 90 are in datacommunication with each other by way of a pair of modems 91 and 92,which may be either external or internal to its respective computersystem. Each of these modems in turn are connected to a data combinationnetwork 93 of one sort of another. The data communication network can bea public switching telecommunications network, local area network (LAN),wide area network (WAN), or any other communication medium over whichserial or parallel data communication can be performed.

As shown, Blocks A through D of FIG. 12 are identical to Block A throughD of FIG. 8. However, at Block E in FIG. 12, the BCS-Encoded FunctionParameter Programming File is transmitted from local function parameterreading computer system 70 to the remote computer system 90 by way ofmodems 91 and 92 and communication network 93. At remote the computersystem 90, the received BCS-Encoded Function Parameter Programming Fileis stored in memory within computer system 90.

At Block F, the remote computer system 90 uses the stored BCS-EncodedFunction Parameter Programming File to print a list of Bar Code SymbolReading Instructions 95 which contains a list of codes for printing aspecific list of Bar Code Symbol Reading Instructions. Each Bar CodeSymbol Reading Instruction in this custom list specifies a specificfunction-encoded bar code symbol, referenced and preprinted in a BarCode Symbol Programming Booklet 96 of the type shown in FIG. 15, whichis read in a particular order during function parameter configurationprocess. Notably, each Bar Code Symbol Reading Instruction 97 has a PageReference and Function-Encoded Symbol reference. The Page Referencemakes a reference to a particular page in the Bar Code SymbolProgramming Booklet 96, whereas Function-encoded Symbol reference refersto a function-encoded bar code symbol printed on the referenced page inthe BCS-Programming Booklet. For convenience sake, each page alsoincludes printed bar code symbols 80 and 84 for entering and exiting theFunction Parameter Programming Mode, respectively, of the programmingbar code symbol reader 2′ being configured.

At Block G, the Bar Code Symbol Reading Instruction List 95 is read inthe specified order, so as to automatically configure the functionparameters of the bar code symbol reader 21 to have identically the samesystem function configuration as the master bar code symbol reader 2.This last step, at Block G, is carried out as follows. First, the usermust first the read bar code symbol specified by the first bar codesymbol reading instruction 97, which causes the symbol reading device toenter its Function Parameter Programming Mode of operation. Secondly,the user must then the read bar code symbol specified by the second barcode symbol reading instruction 98, which causes all of the functionparameters in the symbol reading device to be set to their Defaultvalues. Thereafter, the third instruction 99, forth and subsequentinstructions are followed in order to automatically program the functionparameters specified thereby. Reading the bar code symbol in theProgramming Booklet, specified by each Bar Code Symbol ReadingInstruction in the printed list 95, automatically programs one functionparameter in the bar code symbol being used to carry out theinstructions. When all of the instructions relating to function-encodedbar code symbols have been executed by the user (e.g., operator), thenthe last bar code symbol, referenced by instruction 100, is read inorder to cause the bar code symbol reader to exit the FunctionProgramming Mode and return to its normal Symbol Reading Mode.

Having described the detailed structure and internal functions ofautomatic bar code symbol reading device of the present invention, theoperation of the system controller thereof will now be described whilereferring to Blocks A to CC in FIGS. 8A-8C, and the system block diagramshown in FIG. 4. Notably, however, the control process illustrated inFIGS. 16A-16C is carried out in both the “master” and “clone” bar codesymbol reading devices 2 and 2′ illustrated in FIGS. 10 and 13, inparticular. Consequently, throughout the following description of thecontrol process of FIGS. 16A-16C, reference will be made to either the“master” bar code symbol reader 2 or the “clone” bar code symbol reader2′, as the control blocks of the process implicate.

Beginning at the START block of the Main System Control Routine andproceeding to Block A, the bar code symbol reading device isinitialized. This involves continuously activating (i.e., enabling) IRsensing circuit 10A and the system controller. The system controller, onthe other hand, deactivates (i.e., disables) the remainder ofactivatable system components, e.g., laser diode 47, scanning motor 50,photoreceiving circuit 12, A/D conversion circuit 13, bar code presencedetection module 14, bar code scan data range detection module 15,symbol decoding module 16, data format conversion module 17, datastorage unit 18, and data transmission circuit 19. All timers T₁, T₂,T₃, T₄ and T₅ (not shown) maintained by the system controller are resetto t=0.

Proceeding to Block B in FIG. 16A, the system controller checks todetermine whether control activation signal A₁=1 is received from IRsensing circuit 10A. If this signal is not received, then the systemcontroller returns to the Block A in FIG. 16A. If signal A₁=1 isreceived, indicative that an object has been detected within the objectdetection field, then the system controller proceeds to Block C, atwhich timer T₁ is started and is permitted to run for a preset timeperiod, e.g., 0≦T₁, ≦3 seconds, and timer T₂ is started and permitted torun for a preset time period 0≦T₂≦5 seconds.

Proceeding to Block D in FIG. 16A, the system controller activates laserdiode 47, scanning motor 50, photoreceiving circuit 12, A/D conversioncircuit 13 and bar code presence detection module 14 in order to collectand analyze scan data signals for the purpose of determining whether ornot a bar code is within the scan field. Then, at Block E, the systemcontroller checks to determine whether control activation signal A₂=1 isreceived from bar code presence detection module 14 within time period1≦T₁≦3 seconds. If activation control signal A₂=1, is not receivedwithin this period, indicative that a bar code is not within the scanfield, then the system controller proceeds to Block F. At Block F, thesystem controller deactivates laser diode 47, scanning motor 50,photoreceiving circuit 12, A/D conversion circuit 13 and bar codepresence detection module 14. Then the system controller remains atBlock G until it receives control activation signal A₁=0 from IR sensingcircuit 10A, indicative that the object is no longer in the objectdetection field. When this condition exists, the system controllerreturns to the Block A.

If, however, the system controller receives control activation signalA₂=1 within time period 0≦T₁≦3 seconds, indicative that a bar code hasbeen detected, then the system controller proceeds to Block H. As willbe described hereinafter, this represents a state from the bar codepresence detection state to the bar code symbol reading state.Proceeding to block H, the system controller continues activation oflaser diode 47, scanning motor 50, photoreceiving circuit 12, and A/Dconversion circuit 13, and commences activation of symbol decodingmodule 14. At this stage, fresh bar code scan data is collected and issubject to decode processing. At essentially the same time, at Block I,the system controller starts timer T₃ to run for a time period 0≦T₃≦1second.

As indicated at Block J in FIG. 16A, the system controller checks todetermine whether control activation signal A₃=1 is received from thesymbol decoding module 16 within T₃=1 second, indicative that a bar codesymbol has been successfully read (i.e., scanned and decoded) within theallotted time period. If control activation signal A₃ is not receivedwithin the time period T₃=1 second, then at Block K the systemcontroller checks to determine whether control activating signal A₂=1 isreceived within time period 0≦T₃≦3 seconds. If a bar code symbol is notdetected within this time period, then the system controller proceeds toBlock L to deactivate laser diode 47, scanning motor 50, photoreceivingcircuit 12, A/D conversion circuit 13, bar code presence detectionmodule 14 and symbol decoding module 16. Notably, this event causes atransition from the bar code reading state to the object detectionstate. Thereafter, at Block M the system controller remains in theobject detection state awaiting control activation signal A₁=0,indicative that an object is no longer present in the object detectionfield. When this condition exists, the system controller returns toBlock A, as shown.

If at Block K, however, the system controller receives controlactivation signal A₂=1, indicative that a bar code once again is withinthe scan field then the system controller checks to determine whethertime period T₂ has elapsed. If it has, then the system controllerproceeds to Block L and then to Block A by way of Block M. If, however,time period 0≦T₂≦5 seconds has not elapsed, then the system controllerresets timer T₃ to run once again for a time period 0≦T₃≦1 second. Inessence, this provides the device at least another opportunity to read abar code symbol present within the scan field when the system controlleris at control Block J.

Upon receiving control activation signal A₃=1 from symbol decodingmodule 16, indicative that a bar code symbol has been successfully read,the system controller proceeds to Block 0 in FIG. 16B. At Block 0, thesystem controller determines whether the read bar code symbol ispreassigned (i.e., pre-encoded) to activate the Function ParameterReading Mode of the bar code symbol reading device. Typically, such abar code symbol will be read by the “master” bar code symbol reader 2 asillustrated in FIGS. 9 and 13. If such a bar code symbol is read by“master” bar code symbol reader 2, then at Block P the system controllerdetermines whether the serial data communication port of the bar codesymbol reading device (i.e., serving as a “master” symbol reader) isoperably connected to the serial data communication port of thefunction-parameter reading computer system 70. In the illustrativeembodiment, this connection is achieved by way of data communicationcable 73. If such connection or communication link is not established atthis stage of the process, then at Block P the system controller returnsto Block A in FIG. 16A, as shown. If, however, these devices areoperably linked for data communication, then at Block Q the systemcontroller in master bar code symbol reading device 2 enters itsFunction Parameter Reading Mode. At Block R, the system controller readsthe function parameters set in its function parameter memory 19, andthen transmits the read function parameters to the function-parameterreading computer system 70 operably connected to the data communicationport of the master bar code symbol reader 2. The system controllerremains at Block S until all read function parameters have beensuccessfully transmitted to function-parameter reading computer system70. The received set of function parameters are then stored in thebuffer memory within computer system 70, and subsequently processed andutilized as described above in connection with FIGS. 8 and 12, above.Thereafter, at Block T the system controller in master bar code symbolreader 2 automatically exits its Function Parameter Reading Mode,returning to its normal Bar Code Symbol Reading Mode at Block A in 16A,as shown.

If at Block 0 in FIG. 16B, the system controller determines that theread bar code symbol is not the activation code for the FunctionParameter Reading Mode, then at Block U the system controller determineswhether the read bar code symbol is the activation code symbol for theFunction Parameter Programming Mode. If it is the activation code symbolfor the Function Parameter Programming Mode, then at Block V the systemcontroller enters the Function Parameter Programming Mode of the masterbar code symbol reading device 2 and therefor automatically returns toBlock A so that function-encoded read code symbols can be subsequentlyread during the “mastering” (i.e., function configuring process).

However, if at Block U in FIG. 16B the read bar code symbol is not theactivation code symbol for the Function Parameter Programming Mode, thenat Block W the system controller determines whether the read bar codesymbol is the deactivation code symbol for deactivating the FunctionParameter Programming Mode. If it is such a mode deactivation codesymbol, then at Block X the system controller exits the FunctionParameter Programming Mode and returns to Block A in FIG. 16A, as shown.If at Block W the read bar code symbol is not the deactivation codesymbol for the Function Parameter Programming Mode, then at Block Y thesystem controller determines whether the Function Parameter ProgrammingMode is presently activated. If the Function Parameter Programming Modeis activated, then at Block Z, the system controller determines whetherthe read (i.e., scanned and decoded) bar code symbol is afunction-encoded bar code symbol, such as the type 82-83 printed on list75 shown in FIG. 11. If the read bar code symbol is a function-encodedbar code symbol, then at Block AA in FIG. 16B, the system controller(e.g., in the clone bar code symbol reader 2′) decodes the bits in thefields of the function-encoded bar code symbol, sets the identifiedfunction parameter to the specified function parameter valve, and thenreturns to Block A in FIG. 16A, as shown. If, however, at Block Z, thesystem controller determines that the decode bar code symbol is not afunction-encoded bar code symbol, then the system controller returns tothe Block A in FIG. 16A, as shown.

If at Block Y, the system controller determines that the FunctionProgramming Mode is not presently active, then the system controllerproceeds to Block BB in FIG. 16C.

At Block BB in FIG. 16C, the system controller continues to activatelaser diode 47, scanning motor 50, photoreceiving circuit 12 and A/Dconversion circuit 13, while deactivating symbol decoding module 16 andcommencing activation of data format conversion module 17, data storageunit 18 and data transmission circuit 19. These operations maintain thescanning of the laser beam across the scan field, while symbol characterdata is appropriately formatted and transmitted to data collectiondevice 3, or a host device, by a conventional data communication processwell known in the art.

After transmission of symbol character data to the host device iscompleted, the system controller enters Block CC and continuesactivation of laser diode 47, scanning motor 50, photoreceiving circuit12 and A/D conversion circuit 13, while deactivating symbol decodingmodule 16, data format-conversion module 18, data storage unit 18 anddata transmission circuit 19. To detect the continued presence of anobject within the object detection field, the system controller checksat Block DD whether control activation signal A₁=1 is received from IRsensing circuit 10A. If A₁=0, indicative that the object is no longer inthe object detection field, then the system controller returns to theBlock A. If control activation signal A₁=1 is received, then at Block EEthe system controller activates bar code presence detection module 14.These events represent once again a state transition from objectdetection to bar code symbol presence detection.

At Block FF in FIG. 16C, the system controller starts timer T₄ to runfor a time period 0≦T₄≦5 seconds, and timer T₅ to run for a time period0≦T₅≦3 seconds. Then to determine whether a bar code symbol has beendetected within the scan field, system controller proceeds to block GGto check whether control activation signal A₂=1 is received. If thissignal is not received with the time period 0≦T₅≦5 seconds, indicativethat no bar code symbol is present in the scan field, the systemcontroller proceeds to Block HH, at which it deactivates laser diode 47,scanning motor Se, photoreceiving circuit 12, A/D conversion circuit 13and bar code presence detection module 14. Thereafter, the systemcontroller remains at Block II until the object leaves the objectdetection field and (i.e., receives control activation signal A₁=0), atwhich time the system controller returns to the Block A, as shown.

If, however, at Block T in FIG. 16C, control activation signal A₂=1 isreceived, indicative that a bar code symbol has been detected in thescan field, the system controller proceeds through Blocks JJ and KK toreactivate the symbol decoding module and start timer T₆ to run for atime period 0≦T₆≦1 second. These events represent a state transitionfrom bar code symbol presence detection to bar code symbol reading. AtBlock LL, the system controller checks to determine whether controlactivation signal A₃=1 is received from signal decoding module 16 withintime period 0≦T₆≦1 second. If a bar code symbol is not successfully readwithin this 1 second time period, the system controller returns to BlockGG to form a first loop, within which the device is permitted to detector redetect a bar code symbol within the time period 0≦T₄≦5 seconds. Ifa bar code symbol is decoded within this time interval, the systemcontroller determines at Block MM whether the decoded bar code symbol isdifferent from the previously decoded bar code symbol. If it isdifferent, then the system controller returns to Block BB asillustrated, to format and transmit symbol character data as describedhereinabove.

If, however, the decoded bar code symbol is not different than thepreviously decoded bar code symbol, then at Block NN in FIG. 16C thesystem controller checks to determine whether timer T₄ has lapsed. If ithas not lapsed, the system controller returns to Block GG to form asecond loop, within which the device is permitted to detect or redetecta bar code symbol in the-scan field and then successfully read a validbar code symbol within the set time interval 0≦T₄≦5 seconds. If,however, timer T₄ lapses, then the system controller proceeds to BlockOO at which the system controller deactivates laser diode 47, scanningmotor 50, photoreceiving circuit 12, A/D conversion circuit 13, bar codepresence detection module 14, and symbol decoding module 16. Thereafter,the system controller remains at Block PP until control activationsignal A₁=0 is received from IR sensing circuit 10A, indicative that theobject detection field is free of any objects. At this stage, the systemcontroller returns to the Block A, as shown in FIG. 8C.

The operation of automatic bar code symbol reading device of the presentinvention has been described in connection with Main System ControlRoutine which uses control activation signals A₁, A₂ and A₃. This systemcontrol routine operates on two basic assumptions concerning IR sensingcircuit 10A and bar code symbol presence detection module 14.Specifically, the System Control Routine assumes that the IR sensingcircuit produces control activation signal A₁=1 whenever an object isdetected anywhere within the operative detection range of the objectdetection field. It also assumes that the bar code symbol presencedetection module produces control activation signal A₂=1 whenever a barcode symbol is detected anywhere within the operative scanning range ofthe scan field. These assumptions cause state transitions in theoperation of the automatic bar code symbol reading device, whenotherwise they may not be desired in particular applications.

For example, in some applications it may not be desirable toautomatically advance the symbol reading device to its bar code presencedetection state until an object bearing a bar code is brought within theshort range of the object detection field, as hereinbefore described.Also, it may not be desirable to automatically advance bar code symbolreading state until a detected bar code symbol is brought within theshort range of the scanning field as hereinbefore described. In someinstances, it may be desirable to condition transitions from (i) theobject detection state to the bar code symbol presence detection stateas well as (ii) the bar code symbol presence detection state to the barcode symbol reading state. Yet, in other instances, it may only bedesirable to condition one of these state transitions. The bar codesymbol reading device of the present invention is capable ofconditioning each of these states on whether the detected bar codesymbol is present in either the long or short range portion of the scanfield of the device. Additional details regarding the operation of thelong and short range modes of the bar code symbol reading device hereofcan be found in U.S. Pat. No. 5,340,971.

Having described the operation of the illustrative embodiment of the barcode symbol reading device hereof, it will be helpful at this junctureto describe the various conditions which will cause state transitions tooccur during the automatic operation of the device while in the normalbar code symbol reading mode. In this regard, reference is made to FIG.13 which provides a state transition diagram for the illustrativeembodiment.

As illustrated in FIG. 17, the automatic bar code symbol reading deviceof the present invention has four basic states of operation namely:object detection, bar code symbol presence detection, bar code symbolreading, and symbol character data transmission/storage. The nature ofeach of these states have been described hereinabove in great detail.These four states are schematically illustrated as A, B, C and D,respectively, in the state transition diagram of FIG. 17. Notably, two“extensional states” have also been provided so that the automatic barcode reading devices of the illustrative embodiments are capable ofreading an infinite number of consecutively different bar code symbolswithout returning to the object detection state. These states ofoperation are indicated as E and F and represent bar code presencedetection and bar code symbol reading operations, respectively. Asdescribed above, these operations are employed when attempting toautomatically read one or more consecutively different bar codessymbols, that is, after a first bar code symbol has been successfullyread utilizing operation states A through C.

As shown in FIG. 17, transitions between the various states areindicated by directional arrows, besides each of which are transitionconditions expressed in terms of control activation signals (e.g., A₁,A₂ and A₃), and where appropriate, state time intervals (e.g., T₁, T₂,T₃, T₄, T₅ and T₆). Conveniently, the state diagram of FIG. 17 expressesmost simply the four basic and two extensional operations occurringduring the control flow within the system control programs of FIGS.16A-16C. Significantly, the control activation signals A₁, A₂ and A₃ inFIG. 17 indicate which events within the object detection and/or scanfields can effect a state transition within the allotted time frame(s),where prescribed. A

Having described the illustrative embodiment of the present invention, anumber of modifications readily came to mind.

For example, the master and clone symbol reading devices need not behand-supportable, nor automatic-type bar code symbol readers orscanners. Instead, the master and compatible clone symbol readingdevices may be a programmable in-counter scanner; a programmablehand-held manually-trigger actuated scanner or reader; a programmablelaser projection scanner; a programmable holographic scanner or reader;or the like. Anyone of these bar code symbol scanners may be fixed inposition with respect to a support surface, such as a counter-top orwork surface.

In an alternative embodiment, the function parameter reading computersystem of the present invention need not generate a list offunction-encoded bar code symbols based on those listed in conventionalprogramming manuals. Instead, the function parameter reading computersystem may be programmed to generate a shorter list of function-encodedbar code symbols, than otherwise required when using bar code symbolslisted in the conventional programming manual, while achievingequivalent results. This embodiment of the present invention will havethe added advantage of minimizing the amount of paper and number ofcodes needed to clone a multitude of bar code symbol scanners.

In another alternative embodiment, the function parameter readingcomputer system of the present invention may be programmed to readfunction parameters and create a facsimile list of function parameterencoded bar code symbols which are directly transmitted to a FAX machinelocated at a remote site not equipped with a conventional modem and barcode printing equipment.

In yet another alternative embodiment involving in-counter or fixedposition scanners, the function parameter computer system of the presentinvention can be programmed to generate a BCS-Encoded Function ParameterProgramming File for direct transmission to either the host computersystem (e.g., cash register) or “dumb” data terminal, to which the fixedposition scanner is connected. In typical retail environments, mostPoint of Sale (POS) terminals (e.g., cash registers) have a means, suchas a cash register printer, for use in printing the list offunction-encoded bar code symbols using the received BCS-EncodedFunction-Parameter Programming File. Compatible bar code symbol scannerscan then be programmed as “clones” of the master scanner by simplyreading the list of printed bar code symbols.

While “bar and space” type code symbol scanners have been described inthe illustrative embodiments, it is understood that the presentinvention may be practiced using other types of code symbols, such as2-D codes that do not employ bars and spaces, such as UPC codes.

Also, while the illustrative embodiments disclosed herein will be usefulin many applications in code symbol reading, further modifications tothe present invention herein disclosed will occur to persons skilled inthe art. All such modifications are deemed to be within the scope andspirit of the present invention defined by the appended claims toinvention.

What is claimed is:
 1. A method of programming functionalities in aclone code symbol reader using the programmed functionalities of amaster code symbol reader compatible with said clone code symbol reader,said method comprising the steps of: (a) providing a master code symbolreader having a first function parameter memory, and a plurality ofprogrammable functionalities, wherein each said programmablefunctionality is implementable by setting a corresponding functionparameter in said function parameter memory by reading afunction-encoded code symbol preassigned to said function parameter; (b)providing a clone code symbol reader, having a function parametermemory, and said plurality of programmable functionalities, wherein eachsaid programmable functionality is implementable by setting acorresponding function parameter in said second function parametermemory by reading a function-encoded code symbol preassigned to saidfunction parameter; (c) programming a particular set of functionalitiesin said master code symbol reader by reading a particular set offunction-encoded code symbols and setting a corresponding set offunction parameters in the first function parameter memory of saidmaster code symbol reader; (d) using a computer system to read saidcorresponding set of function parameters set in the first functionparameter memory of said master code symbol reader; (e) storing saidcorresponding set of function parameters read in step (d); (f) usingsaid stored function parameters to produce a function parameterprogramming file; (g) using said function parameter programming file toprint a list of function-encoded bar code symbols which, when read bysaid clone code symbol reader, automatically sets the functionparameters in said second function parameter memory to be identical tothe function parameters set in the first function parameter memory ofsaid master code symbol reader; (h) reading said printed list offunction-encoded bar code symbols using said clone code symbol reader;whereby the function parameters in said second function parameter memoryare automatically set to the identical values of the function parametersset in the first function parameter memory of said master code symbolreader.
 2. The method of claim 1, wherein step (f) further comprisestransferring said function parameter programming file to a remotecomputer system, and wherein step (g) comprises said remote computersystem using said transferred function parameter programming file inorder to print said list of function encoded code symbols.
 3. The methodof claim 1, wherein step (g) comprises said computer system using saidfunction parameter programming file in order to print said list offunction-encoded code symbols.
 4. Apparatus for programmingfunctionalities in a clone code symbol reader using the programmedfunctionalities of a master code symbol reader compatible with saidclone code symbol reader, wherein said master code symbol reader has afirst function parameter memory, and a plurality of programmablefunctionalities, wherein each said programmable functionality isimplementable by setting a corresponding function parameter in saidfunction parameter memory by reading a function-encoded code symbolpreassigned to said function parameter, and wherein said clone codesymbol reader having a function parameter memory, and said plurality ofprogrammable functionalities, wherein each said programmablefunctionality is implementable by setting a corresponding functionparameter in said second function parameter memory by reading afunction-encoded code symbol preassigned to said function parameter;said apparatus comprising: a preprinted menu of function-encoded codesymbols, for use in programming a particular set of functionalities insaid master code symbol reader by said master code symbol reader readinga particular set of said function-encoded code symbols and therebyautomatically setting a corresponding set of function parameters in thefirst function parameter memory of said master code symbol reader; and acomputer system programmed for reading said corresponding set offunction parameters set in the first function parameter memory of saidmaster code symbol reader, said computer system including parameterstoring means for storing said corresponding set of read functionparameters, file producing means for producing a function parameterprogramming file using said stored function parameters, and listprinting means for printing a list of function-encoded code symbolsusing said function parameter programming file, whereby when said listof function-encoded code symbols are read by clone code symbol reader,the function parameters in said second function parameter memory areautomatically set to the values of the function parameters set in thefirst function parameter memory of said master code symbol reader. 5.The apparatus of claim 4, wherein said master and clone code symbolreading devices are each automatic code symbol reading devices havinghand-supportable housings.
 6. The apparatus of claim 5, wherein eachsaid automatic code symbol reader includes a means for producing a laserscanning beam.